The problem frequently arises in automated production of stacking a plurality of uniform or similar objects. For example, completed, optionally already packaged, objects are stacked on pallets for the purpose of transport or semi-finished workpieces are stacked at a (temporary) storage position to process them further at a later date. A similar task is the loading and unloading of boxes and crates with objects for the purpose of transport. Industrial robots having a plurality of degrees of freedoms (manipulators) and which are able to position objects practically as desired are used for this purpose in mass production.
A simple robot suitable for such purposes is described in the publication DE 40 18 684 C2. A pivotable arm, which is further divided and is variable in its length, is attached to a vertical column. A separate gripping apparatus for the object to be manipulated is attached to the end of the arm.
The robot control of an industrial robot is typically programmed so that the so-called “tool center point” (TCP) runs along predefined trajectories, planned in advance, whereby there are various methods for planning such motion paths. The planned trajectories and the tasks carried out along the paths (e.g. “pick tool” “release tool”) are together referred to as a robot program. The robot program is normally adapted to the objects to be manipulated. The robot control thus needs to “know”, e.g. when stacking objects, how high the object is in order to place the next object on the previous one. Assuming the first object (e.g. a box in which a product, for example a fragile object or a foodstuff is packaged) is placed on the ground, with the object (the box) being 20 cm high. The robot then has to position the next object such that its bottom side rests at a height of 20 cm above the ground before the object is released. The next object after that is then positioned 40 cm above the ground to place it on the previous one, and so on. In a similar manner, the robot needs to “know” the shape and the position of a housing or of a packaging when placing an object into the housing or into the packaging. Robots intended for such purposes are also known as “palletizing robots”.
The description above outlines an ideal case in which the dimensions of the object to be positioned and/or stacked, and optionally the dimensions of the housing, are known and are strictly adhered to. If e.g. the actual height of an object differs from a specified dimension, when the manipulator places down the next object it may collide with the previous object (if its height is larger than the specified height) or the object may be released at too early a time and fall onto the previous one (if its height is smaller than the specified height). The tolerances of the individual objects add up during stacking. To avoid collisions, the robot program can be configured such that an object is always released at a specific distance above the level at which it should be placed down in the ideal case. In this case, the object will always fall a short distance, however. Dropping the objects over a short distance (some few mm) may not be a problem in many applications; however, there are some applications in which the objects to be manipulated have to be handled with care and a “gentle” manipulation of the objects is necessary. Such a “gentle” manipulation is not possible with conventional industrial robots (without complex and/or expensive additional sensor systems) because the robot control controls the manipulator such that the TCP runs along the (e.g. point-by-point defined) motion path to an exact end point (a specified position); the robot therefore always moves to (previously) defined deterministic positions and cannot take account of (random) deviations and tolerances in the objects to be manipulated.